package main

import (
	"fmt"
	"reflect"
)

type MyInterface interface {
	MyMethod()
}

type MyStruct struct {
}

func (s *MyStruct) MyMethod() {
	fmt.Println("MyMethod")
}

func main() {
	in := new(int)         //返回指针
	ints := make(chan int) //返回本身
	fmt.Printf("%T", in)

	fmt.Printf("%T", ints)

	return
	var i MyInterface
	typeOf := reflect.TypeOf(i)
	fmt.Println(typeOf)
	// 接口的动态值为nil，但动态类型不为nil
	if i == nil {
		fmt.Println("接口的动态值为nil")
	} else {
		fmt.Println("接口的动态值不为nil")
	}

	// 将接口的动态值设置为nil
	i = nil

	// 再次判断时仍然输出"接口的动态值不为nil"
	if i == nil {
		fmt.Println("接口的动态值为nil")
	} else {
		fmt.Println("接口的动态值不为nil")
	}

}
